package com.bridgeintelligent.tag.mapper;

import com.bridgeintelligent.tag.webserver.dim.mgmt.api.export.DimAggData;
import com.bridgeintelligent.tag.webserver.dim.mgmt.api.export.ExcelCatalogModel;
import com.bridgeintelligent.tag.webserver.dim.mgmt.api.export.ExcelDimDataModel;
import com.bridgeintelligent.tag.webserver.dim.mgmt.api.export.ExcelSecondCatalogModel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author JackCheung
 * @date 2020/7/13 3:52 PM.
 * description:
 */
@Mapper
public interface DimAggMapper {

    /**
     * 查找已存在的标签聚合为DimAggData
     *
     * @param dimId DimAggData
     * @return List<DimAggData>
     */
    List<DimAggData> findDimAggExist(@Param("dimId") String dimId);

    /**
     * 保存变更的数据
     *
     * @param dimAggData DimAggData
     */
    void saveChangeData(DimAggData dimAggData);

    /**
     * 获取上传的标签列表
     *
     * @param type type
     * @return List<DimAggData>
     */
    List<DimAggData> list(@Param("type") String type,@Param("dimName") String dimName,@Param("classify") String classify,@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("catalogId")String catalogId);

    /**
     * 清空旧数据
     */
    void truncate();

    /**
     * 查找要导入的标签
     *
     * @param dimId DimAggData
     * @return List<DimAggData>
     */
    List<DimAggData> findDimAgg(@Param("dimId") String dimId);

    /**
     * 查找目录对应ID
     *
     * @param ids   ds
     * @param level 级别
     * @return List<ExcelCatalogModel>
     */
    List<ExcelCatalogModel> findCatalogList(@Param("items") List<String> ids, @Param("level") String level);



    List<ExcelCatalogModel> findCatalogListSecond(@Param("items") List<String> ids );


    /**
     * 查找
     * @param catalogModels
     * @return
     */
    List<ExcelCatalogModel> findSecondCatalogMap(@Param("items") List<ExcelSecondCatalogModel> catalogModels);

    /**
     * 更新序号
     * @param dimAggData
     * @return
     */
    int updateSortNum(ExcelDimDataModel dimAggData);

    /**
     * 查询所有二级目录
     * @return
     */
    List<ExcelCatalogModel> findSecondCatalog();
}
